  layui.config({
     base: CXL.ctxPath + '/layuiadmin/' //静态资源所在路径
  }).extend({
    index: 'lib/index' //主入口模块
  }).use(['index', 'table'], function(){
    var admin = layui.admin;
    var table = layui.table;
    var $ = layui.$;
    
    /**
     * 表格参数
     */
    var Page = {
    	elem: '#sys-fileparser-table',
        tableId: 'sys-fileparser-table',
    	url: CXL.ctxPath + '/filesys/fileparser/datagrid',
    	toolbar:'#sys-fileparser-toolbar',
    	where:{field:'createDate', order:'desc'},
    	initColumn: function() {
    		return [[
    			     {type: 'numbers'}
    			    ,{type: 'checkbox'}
    		        ,{field:'id', title: 'ID',hide:true, width:80}
    		        ,{field:'code', title: '编号', width:120,style:'background-color: #009688; color: #fff;'}
    		        ,{field:'name', title: '名称', width:150}
    		        ,{field:'handlerCode', title: '文件处理器', width:200}
    		        ,{field:'status',title: '状态', width:80, templet:"#online-status"}
    		        ,{field:'opType', title: '操作类型', width:100, templet:"#online-opType"}
    		        ,{field:'fileType', title: '文件类型', width:100, templet:"#online-fileType"}
    		        ,{field:'filePath', title: '文件路径', width:200}
    		        ,{field:'fileName', title: '文件名称', width:150}
    		        ,{field:'okFileName', title: 'OK文件名称', width:150}
    		        ,{field:'sepChar', title: '分隔符', width:100}
    		        ,{field:'charSet', title: '字符集', width:100, templet:"#online-filecharSet"}
    		        ,{field:'createDate',title: '创建时间', width:180, templet: '<div>{{ layui.laytpl.toDateString(d.createDate) }}</div>'}
    		        ,{fixed: 'right', title:'操作', toolbar: '#sys-fileparser-tool', width:170}
    			]];	 
    	},
    	addUrl: CXL.ctxPath + "/filesys/fileparser/add",
    	deleteUrl : CXL.ctxPath + "/filesys/fileparser/delete",
    	delUrl: CXL.ctxPath + "/filesys/fileparser/batch/del" //批量删除
    };
    
    /**
     * 页面查询
     */
    Page.searchAction = function() {
         var queryData = {};
    	 //查询字段
         queryData['code'] = $("#code").val();
         queryData['name'] = $("#name").val();
         queryData['handlerCode'] = $("#handlerCode").val();
         queryData['status'] = $("#status").val();
         //排序字段
         queryData['field'] = 'createDate';
         queryData['order'] = 'desc';
         
         table.reload(Page.tableId, {where: queryData});
    }
    
    
    
    /**
     * 页面查询条件的重置
     */
    Page.resetAction = function() {
    	$(".layui-input").val('');
    	Page.searchAction();
    }
    
    
    /**
     * 表格的单击事件
     */
    Page.clickAction = function(obj) {
    	
    }
    
    /**
     * 表格的双击事件
     */
    Page.doubleClickAction = function(obj) {
    	
    }
    
    
    /**
     * 新增
     */
    Page.openAdd = function () {
    	layer.open({
    		type : 2,
    		title : '新增',
    		shadeClose : true,
    		shade : 0.8,
    		area: ['700px', '700px'],
    		content : Page.addUrl,
    		btn : [ '确定', '取消' ],
    		yes : function(index, layero) {
    			 //点击确认触发 iframe 内容中的按钮提交
                var submit = layero.find('iframe').contents().find("#form-btn-save");
                submit.click();
                
                //刷新表格
                Page.searchAction();
    		}
    	});
    };
    
    /**
     * 编辑
     */
    Page.openEdit = function (data) {
    	layer.open({
    		type : 2,
    		title : '编辑',
    		shadeClose : true,
    		shade : 0.8,
    		area: ['700px', '700px'],
    		content : Page.addUrl + "?id=" + data.id,
    		btn : [ '确定', '取消' ],
    		yes : function(index, layero) {
    			 //点击确认触发 iframe 内容中的按钮提交
                var submit = layero.find('iframe').contents().find("#form-btn-save");
                submit.click();
                
                //刷新表格
                Page.searchAction();
    		}
    	});
    };
    
    /**
     * 查看
     */
    Page.openDetail = function(data) {
    	layer.open({
    		type : 2,
    		title : '查看',
    		shadeClose : true,
    		shade : 0.8,
    		area: ['650px', '700px'],
    		content : Page.addUrl + "?id=" + data.id
    	});
    }
   
    /**
     * 批量-删除
     */
    Page.doDel = function(data) {
    	if(data.length === 0) {
    		  CXL.warn('请选择一条数据');
    		  return;
          }else {
            var ids=[];
            for (var i = 0; i < data.length; i++) {
                ids += data[i].id + ',';
          }
            ids = ids.substr(0, ids.length-1);
        }
    	//弹出确认提示
    	parent.layer.confirm('真的确定要删除选中的' + data.length + '条数据么，此操作会忽略正在执行的任务', function(index) {
    		var loading = layer.load(0, {
                shade: false,
            });
    	  //提交 Ajax进行后端删除
  	      $.ajax({
  	             type: "post",
  	             url: Page.delUrl,
  	             data: {ids:ids},
  	             success: function(res) {
  	            	layer.close(loading);
  		    		 if(res.success) {
  		    			 CXL.success(res.msg);
  		    			//刷新表格
  		                Page.searchAction();
  		    		 }else {
  		    			 CXL.warn(res.msg);
  		    		 }
  		    	 }
  	         });
        	
          layer.close(index);
        });
    }
    
    /**
     * 删除表格数据
     */
    Page.deleteAction = function(obj) {
    	parent.layer.confirm('真的确定要删除么', function(index){
    		
    	  //提交 Ajax进行后端删除
  	      $.ajax({
  	             type: "post",
  	             url: Page.deleteUrl,
  	             data: {id:obj.data.id},
  	             success: function(res) {
  		    		 if(res.success) {
  		    			 CXL.success(res.msg);
  		    			 //表格删除
  		    			 obj.del();
  		    		 }else {
  		    			 CXL.warn(res.msg);
  		    		 }
  		    	 }
  	         });
        	
          layer.close(index);
        });
    }
    
    /**
     * 跳转文件解析器
     */
    Page.openCheckRuleInfo = function(data) {
    	if(data.length === 0) {
    		CXL.warn('请选择一条数据');
  		  return;
        }
    	if(data.length > 1) {
		  CXL.warn('只允许选择一条数据');
		  return;
    	}
    	var url = CXL.ctxPath + '/filesys/filecheckrule/listByParserId?parserId=' + data[0].id;
		top.layui.index.openTabsPage(url, "文件校验规则信息");  //完成页面跳转
    }
    
    /**
     * 跳转文件解析器
     */
    Page.openParserRuleInfo = function(data) {
    	if(data.length === 0) {
    		CXL.warn('请选择一条数据');
  		  return;
        }
    	if(data.length > 1) {
		  CXL.warn('只允许选择一条数据');
		  return;
    	}
    	var url = CXL.ctxPath + '/filesys/fileparserrule/listByParserId?parserId=' + data[0].id;
		top.layui.index.openTabsPage(url, "文件解析规则信息");  //完成页面跳转
    }
    
    /**
     * 表格渲染
     */
    table.render({
       elem: '#' + Page.tableId
      ,url: Page.url
      ,height: 'full-140'
      ,page: true
      ,limit : 30
      ,autoSort:false
      ,toolbar: Page.toolbar
      ,where: Page.where
      ,defaultToolbar: []
     
      ,cols: Page.initColumn()
    });
    
    /**
     * 表头工具栏
     */
    table.on('toolbar(' + Page.tableId + ')', function(obj){
      var checkStatus = table.checkStatus(obj.config.id)
     , data = checkStatus.data; //获取选中的数据;
      switch(obj.event){
        case 'doAdd':
        	Page.openAdd();
        	break;
        case 'del':
	    	Page.doDel(data);
	    	break;
        case 'fileCheckInfo':
	    	Page.openCheckRuleInfo(data);
	    	break;
        case 'parserRuleInfo':
	    	Page.openParserRuleInfo(data);
	    	break;
      };
    });
    
    /**
     * 监听表格工具事件
     */
    table.on('tool(' + Page.tableId + ')', function(obj){ 
       //获得当前行数据
      var data = obj.data;
       //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
      var layEvent = obj.event; 
     
      //查看操作
      if(layEvent === 'detail'){
    	  Page.openDetail(data);
      } 
      //删除操作
      else if(layEvent === 'del'){
          Page.deleteAction(obj);
      } 
      //编辑操作
      else if(layEvent === 'edit'){
    	  Page.openEdit(data);
      }
    });
    
    
    /**
     * 搜索按钮事件
     */
    $('#btnSearch').click(function () {
    	Page.searchAction();
    });
    
    /**
     * 搜索按钮事件
     */
    $('#btnReset').click(function () {
    	Page.resetAction();
    });
    
    //监听行单击事件
    table.on('row(' + Page.tableId + ')', function(obj){
       Page.clickAction(obj);
    });
     
    //监听行双击事件
    table.on('rowDouble(' + Page.tableId + ')', function(obj){
    	Page.doubleClickAction(obj);
    });
    
  });
  
  
